package actors

import (
	"context"
	"xagent/internal/types"
	proto "xagent/proto/v1"
)

// Action defines the interface for agent actions
type Action interface {
	// Core action methods
	GetName() string
	GetDescription() string

	// Action execution
	Execute(ctx context.Context, input interface{}) (*proto.AgentMessage, error)

	// Action requirements
	GetPrerequisites() []string
	Validate(input interface{}) error
}

// TaskPriority is an alias for types.Priority
type TaskPriority = types.Priority

// Priority constants
const (
	PriorityLow    = types.PriorityLow
	PriorityMedium = types.PriorityMedium
	PriorityHigh   = types.PriorityHigh
)
